Scite Tags

lua-users home
wiki

방대한 프로젝트의 내부 탐색이 필요한 경우가 종종 있다. ctags가 그에 딱맞는 아주 효율적인 도구이다. 인기 있는 ctags 버전은 힐버트(Darren Hiebert)가 만든 Exuberant Ctags [1]로서 상당히 다양한 언어를 지원한다. 현재는 SciteTags 기능을 제공하는 스크립트도 많으며 여러가지 방법도 많다.

기본적인 readtags 기반의 버전

다음의 SciteTags 라이브러리는 제공된readtags 프로그램을 기동시키는 작은 스크립트 모음집이다 Files:wiki_insecure/editors/SciTE/ctags.lua.

확장 버전

다음은 실험적인 확장 버전으로서 오직 SciteExtMan과만 작동한다. 이 스크립트들은 readtags가 필요 없으면 느린 머신에서도 상당히 빠르다.

다음은 최초의 SciteExtMan용 버전이다: <=> Files:wiki_insecure/editors/SciTE/ctagsx.lua

다음은 태그 파일에 공백이 존재하는 몇 가지 문제가 있는 버전이다.... <=> Files:wiki_insecure/editors/SciTE/ctagsx_alt.lua

또다른 버전이 있다. 열린 파일의 $FileDir 경로에 상대적으로 가장 까까운 tags 파일을 동적으로 검색하고 사용한다. 이 버전은 SciTE의 특성 파일에 하는 ctags.path.cxx를 지정할 필요가 없다. 또 비 Exuberant ctags도 잘 처리한다 <=> Files:wiki_insecure/editors/SciTE/ctagsdx.lua

사용법

ctags 도구 구하기

http://home.mweb.co.za/sd/sdonovan/SciTE/ctags.zip에 미리 구축된 Win32 버전의 ctags가 들어 있다. ctags.exe와 readtags.exe가 경로에 있는지 확인하고서, 예와 같이 ctags.lua를 적재하자l. (리눅스류라면, 주의하자 종종 'ctags'라고 부르면서도 Exuberant가 아닌 경우가 있다!) 그렇지만, ctagsdx.lua는 이제 Exuberant이든 아니든 잘 처리한다.

SciTE 설정

확장 버전의 ctagsx.luactagsx_alt를 사용하고 있지 않은 한, 다음과 같이 특성 파일을 설정하자. SciteExtMan과 작동하는 확장 버전은 모두 특성 파일을 요구하지 않는다:

ctags.path.cxx=<full path to tags file>

command.name.14.*=Find Tag
command.14.*=find_ctag $(CurrentWord)
command.subsystem.14.*=3
command.mode.14.*=savebefore:no
command.shortcut.14.*=Ctrl+.

command.name.15.*=Go to mark
command.15.*=goto_mark
command.subsystem.15.*=3
command.mode.15.*=savebefore:no
command.shortcut.15.*=Alt+.

command.name.16.*=Set Mark
command.16.*=set_mark
command.subsystem.16.*=3
command.mode.16.*=savebefore:no
command.shortcut.16.*=Ctrl+'

command.name.17.*=Select from Mark
command.17.*=select_mark
command.subsystem.17.*=3
command.mode.17.*=savebefore:no
command.shortcut.17.*=Ctrl+/


#ctags.exe --recurse --totals=yes --languages=c,c++ --verbose "d:\*" "c:\*"
command.name.18.*=rebuildTags
command.18.*=$(SciteDefaultHome)/ctags --recurse --totals=yes --languages=c,c++ "C:\Dokumente und Einstellungen\lars\Desktop\linux-2.6.15.7\*"
command.subsystem.18.*=0
command.mode.18.*=savebefore:no

태그 파일 생성

예를 들면, SciTE 소스를 열람하고 싶을 경우라면, 태그 데이터베이스를 구축하기 위해 다음과 같이 해야 한다:
e:\scite> ctags src\*.cxx src\*.h win32\*.cxx win32\*.h
그 다음, ctags.path.cxx에 e:\scite\tags를 설정하자

태그 찾기 (모든 버전에 적용 가능)

기본 작동법은 Find Tag, 또는 Ctrl+.으로서, 커서 아래의 단어와 작동한다. 이렇게 하면 표식(mark)이 설정되고, 그래서 Go to Mark나 Alt+.로 즉시 다시 원래의 위치로 돌아 올 수 있다 (필자는 GTK 1.2 버전에서 이런 형태의 단축키를 설정하는데 어려움이 있었다. 여러분의 손가락은 어떤 경우든지 더 편안하게 다른 단축키들을 찾을 것이라 믿는다).

보너스로, Ctrl+'는 Set Mark를 설정하고, Ctrl+/는 커서와 표식 위치 사이의 텍스트를 선택한다.

기본 스크립트를 위해, readtags를 실행할 필요가 있으므로, 윈도우즈에서는 번쩍거리는 성가신 검정 박스를 보게 될 것이다. SciTE를 패치할 필요 없는 신속한 해결책은 SciteOther 라이브러리이다; SciteTags는 가능하라면 자동으로 이것을 적재하려고 한다. ctagsx.lua, ctagsx_alt.lua 확장 버전은 모두 이런 문제가 없다. 그러나 해당 스크립트 파일을 scite_lua 디렉토리에 둘 필요가 있음을 기억하자.

확장된 특징들 (확장 버전에 적용 가능)

이 특징들은 오직 ctagsx.lua, ctagsx_alt.lua에 대해서만 사용 가능하다. 검색에서 부합되는 태그가 여러개 발견되면, 부합된 태그들은 모두 드롭-다운 목록에서 보여주고 선택하게 한다. 또 Alt+C 키 누르기 특징이 있는데 이름으로 태그를 찾을 수 있게 해 준다. Alt+C 다음에 't'를 누르면 타자된 것과 정확하게 똑 같은 태그 이름을 찾을 수 있다. Alt+C 다음에 'f'를 누르면 정규 표현식으로 태그 이름을 찾을 수 있다.
RecentChanges ?preferences
edit ?history
Last edited May 11, 2007 4:12 pm GMT (diff)